Psych Level ScreenerThis Script is intended for Pine Screener and is not designed as a indicator!!!
Pine Screener is something TradingView has recently added and is still only a Beta version.
Pine Screener itself is currently only available to members that are Premium and above.
What it does:
This screener will actively look for tickers that are close to Pysch level in your watchlist.
Psych level here refers to price levels that are round numbers such as 50,100,1000.
Users can specify the offset from a psych level (in %) and scanner will scan for tickers that are within the offset. For example if offset is set at 5% then it will scan for tickers that are within +/-5% of a ticker. (for $100 psych level it will scan for ticker in $95-105 range)
Once scan is completed you will be able to see:
- Current price of ticker
- Closest psych level for that ticker
- % and $ move required for it to hit that psych level
- Ticker's day range and Average range (with % of average range completed for the day)
- Ticker volume and average volume
Setting up:
www.tradingview.com
Above link will help you guide how to setup Pine screener.
Use steps below to guide you the setup for this specific screener:
1. Open Pine Screener (open new tab, select screener the "Pine")
2. At the top, click on "Choose Indicator" and select "Psych Level Screener"
3. At the top again, click "Indicator Psych Level Screener" and select settings.
4. Change setting to your needs. Hit Apply when done.
a)"% offset from Psych Level" will scan for any stocks in your watchlist which are +/- from the offset you chose for any given psych level. Default is 5. (e.g. If offset is 5%, it will scan for stocks that are between $95-$105 vs $100 psych level, $190-$210 for $200 psych level and so on)
b) ATR length is number of previous trading days you want to include in your calculation. Moving Average Type is calculation method.
c) Rvol length is number of previous trading days you want to include in your calculation.
5. On top left, click "Price within specified offset of Psych. Level" and select true. Then select "Scan" which is located at the top next to "Indicator Psych Level Screener". This will filter out all the stock that meets the condition.
6. At the end of the column on the right there is a "+" symbol. From there you can add/remove columns. 30min/1hr/4hr/1D Trend are disabled by default so if this is needed please enable them.
7. You can change the order of ticker by ascending and descending order of each column label if needed. Just click on the arrow that comes up when you move the cursor to any of the column items.
8. You can specify advanced filter settings based on the variables in the column. (e.g., set price range of stock to filter out further) To do so, click on the column variable name in interest, located above the screener table (or right below "scan") and select "manual setup".
How to read the column:
Current Price: Shows current price of the ticker when scan was done. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH price.
Psych Level: Psych level the current price is near to.
% to Psych Level: Price movement in % necessary to get to the Psych level.
$ to Psych Level: Price movement in $ necessary to get to the Psych level.
DTR: Daily True Range of the stock. i.e. High - Low of the ticker on the day.
ATR: Average True Range of stock in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
DTR vs ATR: Amount of DTR a ticker has done in % with respect to ATR. (e.g., 90% means DTR is 90% of ATR)
Vol.: Volume of a ticker for the day. Currently Pine Screener does NOT support pre/post-hours data so no PM and AH volume.
Avg. Vol: Average volume of a ticker in the last x days, where x is a value selected in the setting. (See step 3 in Previous section)
Rvol: Relative volume in percentage, measured by the ratio of day's volume and average volume.
30min/1hr/4hr/1D Trend: Trend status to see if the chart is Bullish or Bearish on each of the time frame. Bullishness or Bearishness is defined by the price being over or under the 34/50 cloud on each of the time frame. Output of 1 is Bullish, -1 is Bearish. 0 means price is sitting inside the 34/50 cloud. Currently Pine Screener does NOT support pre/post-hours data so 34/50 cloud is based on regular trading hours data ONLY.
Some things user should be aware of:
- Pine Screener itself is currently only available to TradingView members with Premium Subscription and above. (I can't to anything about this as this is NOT set by me, I have no control) For more info: www.tradingview.com
- The Pine Screener itself is a Beta version and this screener can stop working anytime depending on changes made by TradingView themselves. (Again I cannot control this)
- Pine Screener can only run on Watchlists for now. (as of 03/31/2025) You will have to prepare your own watchlists. In a Watchlist no more than 1000 tickers may be added. (This is TradingView rules)
- Psych level included are currently 50 to 1500 in steps of 50. If you need a specific number please let me know. Will add accordingly.
- Unfortunately this screener does not update automatically, so please hit "scan" to get latest screener result.
- I cannot add 10min trend to the column as Pine Screener does NOT support 10min timeframe as of now. (03/31/2025)
- This code is only meant for Pine Screener. I do NOT recommend using this as an indicator.
- Currently Pine Screener does NOT support pre/post-hours data. So data such as Price, Volume and EMA values are based on market hours data ONLY! (If I'm wrong about this please correct me / let me know and will make look into and make changes to the code)
Other useful links about Pine Screener:
Quick overview of the Screener’s functionality: www.tradingview.com
what do you need to know before you start working? : www.tradingview.com
These links will go over the setting up with GIFs so is easier to understand.
-----------------------------------------------------------------------------------------------------------------
If there are other column variables that you think is worth adding please let me know! Will try add it to the screener!
If you have any questions let me know as well, will reply soon as I can!
Have a good trading day and hope it helps!
חפש סקריפטים עבור "relative volume"
Zanger Volume Ratio (ZVR)Zanger Volume Ratio (ZVR)
Credits:
Most of the underlying code and logic in this script have been adapted from the work originally published by The_Peaceful_Lizard
Overview
The Zanger Volume Ratio (ZVR) is a powerful indicator designed to reveal market dynamics by comparing current cumulative volume to an average determined over a historical look-back period. It uses the concept of relative volume to not only highlight unusual volume spikes, but also uses color to illustrate how today's trading compares to typical levels. This unique method of volume analysis was popularized by Dan Zanger - a trader known for turning $10,775 into $18,000,000 in less than two years - by identifying key shifts in market interest and volume behavior.
Key Features
Volume Pacing Analysis:
The script calculates a volume delta by comparing the cumulative volume at any given moment to an average derived over a user-defined lookback period (Default 20-day). The resulting percentage difference offers a clear visualization and insight into unusual volume activity.
Dynamic Visual Representation:
Choose between either “Columns” or “Area” plot styles to display the percent difference. Additionally, you have the option to switch between a standard plot or a background color display, with customizable transparency, ensuring the indicator fits seamlessly with your chart’s aesthetics.
Dashboard Integration:
A simple dashboard table is displayed on the chart, showcasing the current ZVR value in real-time. With user-configurable position, text size, alignment, and color options, this feature ensures that the key metric is always visible and easy to interpret.
Why Use the Zanger Volume Ratio?
The ZVR is more than just a volume indicator. It acts as a window into market sentiment by highlighting days when trading interest intensifies. Many traders believe that an unusually high volume ratio may confirm trend strength or signal a reversal, making the indicator a valuable tool when used in conjunction with other technical analysis methods.
Whether you’re monitoring stocks, commodities, or forex markets, the Zanger Volume Ratio offers an accessible yet sophisticated method to decode volume dynamics. Its practical design and real-time visual feedback provide traders of all experience levels with critical data to spot high-potential setups.
Chart Description
First Pane: normal Volume Indicator on the foreground, ZVR as Background colors
Second Pane: ZVR Indicator with Column Style (default)
First panel: normal volume indicator in foreground, ZVR as background colors
Second panel: ZVR indicator with column style (default)
Note: This indicator is intended for use on intraday charts only!
Liquidation Levels with Liquidity Sweeps/Breakouts [AlgoAlpha]🌊📈 Dive into the depths of market liquidity with "Liquidation Levels with Liquidity Sweeps/Breakouts" - your ultimate tool for navigating the turbulent waters of trading! 🧹💹 Crafted by the wizards at AlgoAlpha, this Pine Script™ masterpiece illuminates the unseen liquidity levels and sweeps, guiding you through the financial seas with insight. 🚀🔍
Key Features:
🕒 Timeframe Flexibility: Customize your analysis with a TimeFrame Multiplier, allowing the indicator to operate on higher timeframes for broader market insight.
💥 Dynamic Volume Threshold: Set your sensitivity to breakouts with the High Volume Threshold, ensuring you catch significant market movements while avoiding fakeouts.
👀 Visibility Controls: Toggle the display of swept liquidity and highlight liquidity breakouts with customizable background colors for clear, actionable insights.
🎨 Custom Appearance: Personalize your chart with bullish, bearish, and breakout colors to match your trading style.
How to Use the Liquidity Levels with Liquidation Sweeps Indicator:
Maximize your trading efficiency with the Liquidity Levels with Liquidation Sweeps Indicator by following these simple steps! 🚀🌟
⚙️ Customize Settings: Access the indicator settings to personalize the TimeFrame Multiplier, High Volume Threshold, and Relative Volume Period. Tailor these settings to match your trading strategy and chart preferences.
👁️ Analyze Liquidity Levels: Monitor the chart for liquidity levels and sweeps. Bullish sweeps are marked with green labels, bearish sweeps with red, and breakouts highlighted by the chart background.
🔔 Set Alerts: Enable alert conditions for liquidity breakouts and sweeps within the indicator's settings. This feature allows you to receive real-time notifications, helping you to act promptly on trading opportunities.
How It Works:
The heart of this indicator lies in its ability to track and highlight liquidity levels derived from swing pivots, and sweeps across multiple timeframes. By calculating relative volume against a user-defined threshold, it identifies strong volume movements indicative of liquidity breakouts, this helps filter out fake-outs. When a liquidity level is breached but not completely mitigated, it's either marked as a bullish or bearish sweep, which come with the option to show an estimate of the number of liquidations during the sweep.
if peakform and peakprinted != 1
aR.push(line.new(bar_index-mult, h.get(1), bar_index+1, h.get(1), color = red))
aRv.push(h.get(1))
peakprinted := 1
if valleyform and valleyprinted != 1
aS.push(line.new(bar_index-mult, l.get(1), bar_index+1, l.get(1), color = green))
aSv.push(l.get(1))
valleyprinted := 1
RVOL/ExpVol/ATR/ExpRGives 4 values:
- Relative Volume: needs the first 5M candle to have closed to give a good value then updates every 5 minute throughout the day. Compares to the historical Volume on the last 30 days on the SAME time period from Open.
Most indicators compare to the average volume on any 30min period, thus highly overestimating the RVOL at Open when Volume is higher.
- Expected Volume on the day in Million of shares given the RVOL.
- Average True Range on the last 14 days
- Expected Range on the day given the ATR & the RVOL.
Warning: Expected Range is just an estimation from data I gathered but the Day's range can be way higher or lower than that. Also if RVOL > 3 then the estimation works less & less.
As this was originally coded just for me I don't ask user input for things like the lookback period or the refresh period. You have to make a copy & go in the code and modify it if you want to change it.
Also the data displayed is given for the candle on which your cursor is !
Works best on 5-minute and above chart timeframes.
Equivolume - volume as candle widthDo price action and volume really need to be on separate graphs? Why not display them both on a single graph and reduce the clutter? Presenting Equivolume candles here on TradingView - inspired by the NinjaTrader implementation
This indicator allows you to view traditional OHLC candles but with the additional ability to see relative volume through variations of width and/or transparency
Explanation
- Wide and/or full colour candles have the highest volume
- Thin and/or highly transparent candles have the lowest volume
- The following diagram shows the Equivolume indicator as well as a traditional volume graph along the bottom. You can see that when the volume is highest, the candle is widest and also the most intense color.
- The `Lookback candle count` user parameter specifies the number of candles to use in order to locate the highest volume within that range. All other candle widths in the range will be adjusted relative to this highest volume
Tips
- Toggle off the visibility of the original graph for the instrument to get the best view of the candles when using variable transparency
Gotchas
- Due to a Pine Script limitation a maximum of 500 variable width candles can be drawn on the chart
- If `Lookback candle count` is higher than the total number of available candles for the instrument, then the indicator will fail and not display anything. I’m still investigating how to handle this case better
- Be aware if you are using the `High` setting for the `Transparency range` parameter, candles with the lowest volume will be virtually invisible
[KL] Relative Volume StrategyThis strategy will Long when:
Confirmation #1: when volume is relatively high
Confirmation #2: during periods of price consolidation (See )
It exits when either (a) stop loss limit is reached, or when (b) price actions suggest trend is bearish.
Measuring price volatility to assume consolidation:
For each candlestick, we quantify price volatility by referring to the value of standard deviations (2x) of closing prices over a look-back period of 20 candles. This is exactly what the Bollinger Band (“BOLL”) indicates by default.
Knowing the value of standard deviation (2x) of prices (aka the width of lower/upper BOLL bands), we then compare it with ATR (x2) over a user-defined length (can be configured in settings). Volatility is considered to be low, relatively, when the standard deviation (x2) of prices is less than ATR (2x).
Spread AnalyzerThis script plots the relative performance of the viewed security with respect to a selected benchmark. It can be used to identify assets higher than market average potential.
- The plot above is the relative volume.
- The plot below is the relative performance.
Computation is done by applying stochastic to the spread of the asset's current price/obv value to the benchmark defined by the Part1, 2 and 3.
The benchmark can be a portfolio as well:
Part1 = 4*SPY+2*QQQ
Part2 = XAUUSD+EURUSD
-PS: Each part may contain up to 10 symbols.
- The spread is calculated with the following formula
close / (Part1 + Part2 + Part3)
- Color code is based on the stochastic of macd of the spread.
The inputs:
length : lookback length for the stochastic
lenk : Smoothing factor(K) for stochastic
lend : EMA length(D)
MACD Fast / Slow / Smooth : MACD parameters used to determine the color code
Volume+ (RVOL/Alerts)This indicator colors the volume bars based on any of the three follow criteria:
- Volume Amount
- RVOL (Relative Volume)
- Lookback (Highest Over Period)
You can use one, two or all three of these settings at the same time.
You can also set alerts with this indicator. The script will trigger an alert whenever any of the three specified flags are triggered.
RVOL is calculated as: Volume divided by Moving Average value. You can change the moving average period (and type) in the settings.
BTC Volume Stacked [v2018-11-17] @ LekkerCryptisch.nlCombine the volume of 8 BTCUSD(T) exchanges in one graph.
Two use cases:
1) Stack the absolute volume to see the combined volume in BTC over time.
2) Stack the relative volume to see the relative size of exchange change over time.
VSA Signals [odnac]This indicator applies Volume Spread Analysis (VSA) concepts to highlight important supply and demand events directly on the chart. It automatically detects common VSA patterns using price spread, relative volume, and candle structure, with optional trend filtering for higher accuracy.
Features:
Stopping Volume (SV): Signals potential end of a downtrend when heavy buying appears.
Buying Climax (BC): Indicates exhaustion of an uptrend with heavy volume near the top.
No Supply (NS): Weak selling pressure, often a bullish sign in an uptrend.
No Demand (ND): Weak buying interest, often a bearish sign in a downtrend.
Test: Low-volume test bar probing for supply.
Up-thrust (UT): Failed breakout with long upper wick, often a bearish trap.
Shakeout: Bear trap with high-volume wide down bar closing low.
Demand Absorption (DA): Demand absorbing heavy selling pressure.
Supply Absorption (SA): Supply absorbing heavy buying pressure.
Additional Options:
Background highlights for detected signals.
Configurable moving average (SMA, EMA, WMA, VWMA) as a trend filter.
Adjustable multipliers for volume and spread sensitivity.
Legend table for quick reference of signals and meanings.
Alerts available for all signals.
This tool is designed to help traders spot professional accumulation and distribution activity and to improve trade timing by recognizing supply/demand imbalances in the market.
Breakout Volume Momentum [5m]Breakout Volume Momentum Indicator (Pine Script v5)
This TradingView Pine Script v5 indicator plots a green dot below a 5-minute price bar whenever all the breakout and volume conditions are met. It is optimized for live intraday trading (not backtesting) and includes customizable inputs for thresholds and trading session times. Key features and conditions of this indicator:
Gap Up Threshold: Current price is up at least X% (default 20%) from the previous day’s close (uses higher-timeframe daily data) before any signal can trigger.
Relative Volume (RVOL): Current bar’s volume is at least Y× (default 2×) the average volume of the last 20 bars. This ensures unusually high volume is present, indicating strong interest.
Trend Alignment: Price is trading above the VWAP (Volume-Weighted Average Price) and above a fast EMA. In addition, the fast EMA (default 9) is above the slower EMA (default 20) to confirm bullish momentum
tradingview.com
tradingview.com
. These filters ensure the stock is in an intraday uptrend (above the average price and rising EMAs).
Intraday Breakout (optional): Optionally require the price to break above the recent intraday high (default last 30 bars). If enabled, a signal only occurs when the stock exceeds its prior range high, confirming a breakout. This can be toggled on/off in the settings.
Avoid Parabolic Spikes: The script skips any bar with an excessively large range (default >12% from low to high), to avoid triggering on spiky or unsustainable parabolic candles.
Time Window Filter: Signals are restricted to a specific session window (by default 09:30 – 11:00 exchange time, typically the morning session) and will not trigger outside these hours. The session window is adjustable via inputs
stackoverflow.com
.
Alerts: An alert condition is provided so you can set a Trading View alert to send a push notification when a green dot signal fires. The alert message includes the ticker and price at the time of signal.
NQ Phantom Scalper Pro# 👻 NQ Phantom Scalper Pro
**Advanced VWAP Mean Reversion Strategy with Volume Confirmation**
## 🎯 Strategy Overview
The NQ Phantom Scalper Pro is a sophisticated mean reversion strategy designed specifically for Nasdaq 100 (NQ) futures scalping. This strategy combines Volume Weighted Average Price (VWAP) bands with intelligent volume spike detection to identify high-probability reversal opportunities during optimal market hours.
## 🔧 Key Features
### VWAP Band System
- **Dynamic VWAP Bands**: Automatically adjusting standard deviation bands based on intraday volatility
- **Multiple Band Levels**: Configurable Band #1 (entry trigger) and Band #2 (profit target reference)
- **Flexible Anchoring**: Choose from Session, Week, Month, Quarter, or Year-based VWAP calculations
### Volume Intelligence
- **Volume Spike Detection**: Only triggers entries when volume exceeds SMA by configurable multiplier
- **Relative Volume Display**: Real-time volume strength indicator in info panel
- **Optional Volume Filter**: Can be disabled for testing alternative setups
### Advanced Time Management
- **12-Hour Format**: User-friendly time inputs (9 AM - 4 PM default)
- **Lunch Filter**: Automatically avoids low-liquidity lunch period (12-2 PM)
- **Visual Time Zones**: Color-coded background for active/inactive periods
- **Market Hours Focus**: Optimized for peak NQ trading sessions
### Smart Risk Management
- **ATR-Based Stops**: Volatility-adjusted stop losses using Average True Range
- **Dual Exit Strategy**: VWAP mean reversion + fixed profit targets
- **Adjustable Risk-Reward**: Configurable target ratio to opposite VWAP band
- **Position Sizing**: Percentage-based equity allocation
### Optional Trend Filter
- **EMA Trend Alignment**: Optional trend filter to avoid counter-trend trades
- **Configurable Period**: Adjustable EMA length for trend determination
- **Toggle Functionality**: Enable/disable based on market conditions
## 📊 How It Works
### Entry Logic
**Long Entries**: Triggered when price touches lower VWAP band + volume spike during active hours
**Short Entries**: Triggered when price touches upper VWAP band + volume spike during active hours
### Exit Strategy
1. **VWAP Mean Reversion**: Early exit when price returns to VWAP center line
2. **Profit Target**: Fixed target based on percentage to opposite VWAP band
3. **Stop Loss**: ATR-based protective stop
### Visual Elements
- **VWAP Center Line**: Blue line showing volume-weighted fair value
- **Green Bands**: Entry trigger levels (Band #1)
- **Red Bands**: Extended levels for target reference (Band #2)
- **Orange EMA**: Trend filter line (when enabled)
- **Background Colors**: Yellow (lunch), Gray (after hours), Clear (active trading)
- **Info Panel**: Real-time metrics display
## ⚙️ Recommended Settings
### Timeframes
- **Primary**: 1-5 minute charts for scalping
- **Validation**: Test on 15-minute for swing applications
### Market Conditions
- **Best Performance**: Ranging/choppy markets with good volume
- **Trend Markets**: Enable trend filter to avoid counter-trend trades
- **High Volatility**: Increase ATR multiplier for stops
### Session Optimization
- **Pre-Market**: Generally avoided (low volume)
- **Morning Session**: 9:30 AM - 12:00 PM (high activity)
- **Lunch Period**: 12:00 PM - 2:00 PM (filtered by default)
- **Afternoon Session**: 2:00 PM - 4:00 PM (good volume)
- **After Hours**: Generally avoided (wide spreads)
## ⚠️ Risk Disclaimer
This strategy is for educational purposes only and does not constitute financial advice. Past performance does not guarantee future results. Trading futures involves substantial risk of loss and is not suitable for all investors. Users should:
- Thoroughly backtest on historical data
- Start with small position sizes
- Understand the risks of leveraged trading
- Consider transaction costs and slippage
- Never risk more than you can afford to lose
## 📈 Performance Tips
1. **Volume Threshold**: Adjust volume multiplier based on average NQ volume patterns
2. **Band Sensitivity**: Modify band multipliers for different volatility regimes
3. **Time Filters**: Customize trading hours based on your timezone and preferences
4. **Trend Alignment**: Use trend filter during strong directional markets
5. **Risk Management**: Always maintain consistent position sizing and risk parameters
**Version**: 6.0 Compatible
**Asset**: Optimized for NASDAQ 100 Futures (NQ)
**Style**: Mean Reversion Scalping
**Frequency**: High-Frequency Trading Ready
A+ Trade CheckList with Comprehensive Relative StrengthThe indicator designed for traders who need real-time market assessment across multiple timeframes and benchmarks. This comprehensive tool combines traditional technical analysis with sophisticated relative strength measurements to provide a complete market picture in one convenient table display.
The indicator tracks essential trading levels including:
QQQ and SPY trend analysis using exponential moving averages
Previous day and week high/low levels for key support and resistance
Market open levels from the first 5 and 15 minutes of trading (9:30 AM ET)
VWAP positioning for institutional price reference
Short-term EMA positioning for momentum assessment
Advanced Relative Strength Analysis
The standout feature of this indicator is its comprehensive 8-metric relative strength scoring system that compares your current ticker against both QQQ (Nasdaq-100) and SPY (S&P 500) benchmarks.
The 4-Metric Relative Strength System Explained
Metric 1: Relative Strength Ratio (RSR)
Purpose: Measures whether your ticker is outperforming or underperforming relative to its historical relationship with the benchmarks.
How it works:
Calculates the ratio of your ticker's price to QQQ/SPY prices
Compares current ratio to a 20-period moving average of the ratio
Scores +1 if ratio is above average (relative strength), -1 if below (relative weakness)
Trading significance: Identifies when a stock is breaking out of its normal correlation pattern with major indices.
Metric 2: Percentage-Based Relative Performance
Purpose: Compares short-term percentage changes to identify immediate relative momentum.
How it works:
Calculates 5-day percentage change for your ticker and benchmarks
Subtracts benchmark performance from ticker performance
Scores +1 if outperforming by >1%, -1 if underperforming by >1%, 0 for neutral
Trading significance: Captures recent momentum shifts and identifies stocks moving independently of market direction.
Metric 3: Beta-Adjusted Relative Strength (Alpha)
Purpose: Measures risk-adjusted performance by accounting for the ticker's natural volatility relationship with benchmarks.
How it works:
Calculates rolling beta (correlation and variance relationship)
Determines expected returns based on benchmark moves and beta
Measures alpha (excess returns above/below expectations)
Scores based on whether alpha is consistently positive or negative
Trading significance: Identifies stocks generating returns beyond what their risk profile would suggest, indicating fundamental strength or weakness.
Metric 4: Volume-Weighted Relative Strength
Purpose: Incorporates volume analysis to validate price-based relative strength signals.
How it works:
Compares VWAP-based percentage changes between ticker and benchmarks
Applies volume weighting factor based on relative volume strength
Enhances score when high relative volume confirms price movements
Trading significance: Distinguishes between genuine institutional-driven moves and low-volume price action that may not sustain.
Combined Scoring System
The indicator generates 8 individual scores (4 metrics × 2 benchmarks) that combine into a single strength assessment:
Score Interpretation
Strong (4-8 points): Ticker significantly outperforming both benchmarks across multiple methodologies
Moderate Strong (1-3 points): Ticker showing good relative strength with some mixed signals
Neutral (0 points): Balanced performance relative to benchmarks
Moderate Weak (-1 to -3 points): Ticker showing relative weakness with some mixed signals
Weak (-4 to -8 points): Ticker significantly underperforming both benchmarks
Display Format
The indicator shows results as: "Strong (6/8)" indicating the ticker scored 6 out of 8 possible points.
Volume CandlesVolume Candles — Context-Aware Candle Color
Description:
This visual indicator colors your price candles based on relative volume intensity, helping traders instantly detect low, medium, and high volume activity at a glance. It supports two modes — Percentile Ranking and Volume Average — offering flexible interpretation of volume pressure across all timeframes.
It uses a 3-tiered color system (bright, medium, dark) with customizable tones for both bullish and bearish candles.
How It Works:
You can choose between two modes for volume classification:
Ranking Mode (Default):
Measures current volume’s percentile rank over a lookback period. Higher percentiles = stronger color intensity.
Percentile thresholds:
< 50% → light color (low volume)
50–80% → medium intensity
> 80% → high volume
Volume Average Mode:
Compares current volume against its simple moving average (SMA).
Volume thresholds:
< 0.5× SMA → light color
Between 0.5× and 1.5× → medium
> 1.5× → high intensity
Candle Paint:
Candles are colored directly on the chart, not in a separate pane. Bullish candles use green shades, bearish use red. All colors are fully customizable.
How to Interpret:
Bright Colors = High volume (potential strength or climax)
Muted/Transparent Colors = Low or average volume (consolidation, traps)
Example Use Cases:
Spot fakeouts with large price movement on weak volume (dark color)
Confirm breakout strength with bright candles
Identify stealth accumulation/distribution
Inputs & Settings:
Mode: Ranking Percentile or Volume Average
Lookback Period for ranking and SMA
Custom Colors for bullish and bearish candles at 3 intensity levels
Best For:
Price action traders wanting context behind each candle
Scalpers and intraday traders needing real-time volume feedback
Anyone using volume as a filter for entries or breakouts
Pro Tips:
Combine with Price Action, Bollinger Bands or VWAP/EMA levels to confirm breakout validity and intent behind a move.
Use alongside RSI/MACD divergences for high-volume reversal signals.
For swing trading, expand the lookback period to better normalize volume over longer trends.
Enhanced Volume Trend Indicator with BB SqueezeEnhanced Volume Trend Indicator with BB Squeeze: Comprehensive Explanation
The visualization system allows traders to quickly scan multiple securities to identify high-probability setups without detailed analysis of each chart. The progression from squeeze to breakout, supported by volume trend confirmation, offers a systematic approach to identifying trading opportunities.
The script combines multiple technical analysis approaches into a comprehensive dashboard that helps traders make informed decisions by identifying high-probability setups while filtering out noise through its sophisticated confirmation requirements. It combines multiple technical analysis approaches into an integrated visual system that helps traders identify potential trading opportunities while filtering out false signals.
Core Features
1. Volume Analysis Dashboard
The indicator displays various volume-related metrics in customizable tables:
AVOL (After Hours + Pre-Market Volume): Shows extended hours volume as a percentage of the 21-day average volume with color coding for buying/selling pressure. Green indicates buying pressure and red indicates selling pressure.
Volume Metrics: Includes regular volume (VOL), dollar volume ($VOL), relative volume compared to 21-day average (RVOL), and relative volume compared to 90-day average (RVOL90D).
Pre-Market Data: Optional display of pre-market volume (PVOL), pre-market dollar volume (P$VOL), pre-market relative volume (PRVOL), and pre-market price change percentage (PCHG%).
2. Enhanced Volume Trend (VTR) Analysis
The Volume Trend indicator uses adaptive analysis to evaluate buying and selling pressure, combining multiple factors:
MACD (Moving Average Convergence Divergence) components
Volume-to-SMA (Simple Moving Average) ratio
Price direction and market conditions
Volume change rates and momentum
EMA (Exponential Moving Average) alignment and crossovers
Volatility filtering
VTR Visual Indicators
The VTR score ranges from 0-100, with values above 50 indicating bullish conditions and below 50 indicating bearish conditions. This is visually represented by colored circles:
"●" (Filled Circle):
Green: Strong bullish trend (VTR ≥ 80)
Red: Strong bearish trend (VTR ≤ 20)
"◯" (Hollow Circle):
Green: Moderate bullish trend (VTR 65-79)
Red: Moderate bearish trend (VTR 21-35)
"·" (Small Dot):
Green: Weak bullish trend (VTR 55-64)
Red: Weak bearish trend (VTR 36-45)
"○" (Medium Hollow Circle): Neutral conditions (VTR 46-54), shown in gray
In "Both" display mode, the VTR shows both the numerical score (0-100) alongside the appropriate circle symbol.
Enhanced VTR Settings
The Enhanced Volume Trend component offers several advanced customization options:
Adaptive Volume Analysis (volTrendAdaptive):
When enabled, dynamically adjusts volume thresholds based on recent market volatility
Higher volatility periods require proportionally higher volume to generate significant signals
Helps prevent false signals during highly volatile markets
Keep enabled for most trading conditions, especially in volatile markets
Speed of Change Weight (volTrendSpeedWeight, range 0-1):
Controls emphasis on volume acceleration/deceleration rather than absolute levels
Higher values (0.7-1.0): More responsive to new volume trends, better for momentum trading
Lower values (0.2-0.5): Less responsive, better for trend following
Helps identify early volume trends before they fully develop
Momentum Period (volTrendMomentumPeriod, range 2-10):
Defines lookback period for volume change rate calculations
Lower values (2-3): More responsive to recent changes, better for short timeframes
Higher values (7-10): Smoother, better for daily/weekly charts
Directly affects how quickly the indicator responds to new volume patterns
Volatility Filter (volTrendVolatilityFilter):
Adjusts significance of volume by factoring in current price volatility
High volume during high volatility receives less weight
High volume during low volatility receives more weight
Helps distinguish between genuine volume-driven moves and volatility-driven moves
EMA Alignment Weight (volTrendEmaWeight, range 0-1):
Controls importance of EMA alignments in final VTR calculation
Analyzes multiple EMA relationships (5, 10, 21 period)
Higher values (0.7-1.0): Greater emphasis on trend structure
Lower values (0.2-0.5): More focus on pure volume patterns
Display Mode (volTrendDisplayMode):
"Value": Shows only numerical score (0-100)
"Strength": Shows only symbolic representation
"Both": Shows numerical score and symbol together
3. Bollinger Band Squeeze Detection (SQZ)
The BB Squeeze indicator identifies periods of low volatility when Bollinger Bands contract inside Keltner Channels, often preceding significant price movements.
SQZ Visual Indicators
"●" (Filled Circle): Strong squeeze - high probability setup for an impending breakout
Green: Strong squeeze with bullish bias (likely upward breakout)
Red: Strong squeeze with bearish bias (likely downward breakout)
Orange: Strong squeeze with unclear direction
"◯" (Hollow Circle): Moderate squeeze - medium probability setup
Green: With bullish EMA alignment
Red: With bearish EMA alignment
Orange: Without clear directional bias
"-" (Dash): Gray dash indicates no squeeze condition (normal volatility)
The script identifies squeeze conditions through multiple methods:
Bollinger Bands contracting inside Keltner Channels
BB width falling to bottom 20% of recent range (BB width percentile)
Very narrow Keltner Channel (less than 5% of basis price)
Tracking squeeze duration in consecutive bars
Different squeeze strengths are detected:
Strong Squeeze: BB inside KC with tight BB width and narrow KC
Moderate Squeeze: BB inside KC with either tight BB width or narrow KC
No Squeeze: Normal market conditions
4. Breakout Detection System
The script includes two breakout indicators working in sequence:
4.1 Pre-Breakout (PBK) Indicator
Detects potential upcoming breakouts by analyzing multiple factors:
Squeeze conditions lasting 2-3 bars or more
Significant price ranges
Strong volume confirmation
EMA/MACD crossovers
Consistent price direction
PBK Visual Indicators
"●" (Filled Circle): Detected pre-breakout condition
Green: Likely upward breakout (bullish)
Red: Likely downward breakout (bearish)
Orange: Direction not yet clear, but breakout likely
"-" (Dash): Gray dash indicates no pre-breakout condition
The PBK uses sophisticated conditions to reduce false signals including minimum squeeze length, significant price movement, and technical confirmations.
4.2 Breakout (BK) Indicator
Confirms actual breakouts in progress by identifying:
End of squeeze or strong expansion of Bollinger Bands
Volume expansion
Price moving outside Bollinger Bands
EMA crossovers with volume confirmation
MACD crossovers with significant price range
BK Visual Indicators
"●" (Filled Circle): Confirmed breakout in progress
Green: Upward breakout (bullish)
Red: Downward breakout (bearish)
Orange: Unusual breakout pattern without clear direction
"◆" (Diamond): Special breakout conditions (meets some but not all criteria)
"-" (Dash): Gray dash indicates no breakout detected
The BK indicator uses advanced filters for confirmation:
Requires consecutive breakout signals to reduce false positives
Strong volume confirmation requirements (40% above average)
Significant price movement thresholds
Consistency checks between price action and indicators
5. Market Metrics and Analysis
Price Change Percentage (CHG%)
Displays the current percentage change relative to the previous day's close, color-coded green for positive changes and red for negative changes.
Average Daily Range (ADR%)
Calculates the average daily percentage range over a specified period (default 20 days), helping traders gauge volatility and set appropriate price targets.
Average True Range (ATR)
Shows the Average True Range value, a volatility indicator developed by J. Welles Wilder that measures market volatility by decomposing the entire range of an asset price for that period.
Relative Strength Index (RSI)
Displays the standard 14-period RSI, a momentum oscillator that measures the speed and change of price movements on a scale from 0 to 100.
6. External Market Indicators
QQQ Change
Shows the percentage change in the Invesco QQQ Trust (tracking the Nasdaq-100 Index), useful for understanding broader tech market trends.
UVIX Change
Displays the percentage change in UVIX, a volatility index, providing insight into market fear and potential hedging activity.
BTC-USD
Shows the current Bitcoin price from Coinbase, useful for traders monitoring crypto correlation with equities.
Market Breadth (BRD)
Calculates the percentage difference between ATHI.US and ATLO.US (high vs. low securities), indicating overall market direction and strength.
7. Session Analysis and Volume Direction
Session Detection
The script accurately identifies different market sessions:
Pre-market: 4:00 AM to 9:30 AM
Regular market: 9:30 AM to 4:00 PM
After-hours: 4:00 PM to 8:00 PM
Closed: Outside trading hours
This detection works on any timeframe through careful calculation of current time in seconds.
Buy/Sell Volume Direction
The script analyzes buying and selling pressure by:
Counting up volume when close > open
Counting down volume when close < open
Tracking accumulated volume within the day
Calculating intraday pressure (up volume minus down volume)
Enhanced AVOL Calculation
The improved AVOL calculation works in all timeframes by:
Estimating typical pre-market and after-hours volume percentages
Combining yesterday's after-hours with today's pre-market volume
Calculating this as a percentage of the 21-day average volume
Determining buying/selling pressure by analyzing after-hours and pre-market price changes
Color-coding results: green for buying pressure, red for selling pressure
This calculation is particularly valuable because it works consistently across any timeframe.
Customization Options
Display Settings
The dashboard has two customizable tables: Volume Table and Metrics Table, with positions selectable as bottom_left or bottom_right.
All metrics can be individually toggled on/off:
Pre-market data (PVOL, P$VOL, PRVOL, PCHG%)
Volume data (AVOL, RVOL Day, RVOL 90D, Volume, SEED_YASHALGO_NSE_BREADTH:VOLUME )
Price metrics (ADR%, ATR, RSI, Price Change%)
Market indicators (QQQ, UVIX, Breadth, BTC-USD)
Analysis indicators (Volume Trend, BB Squeeze, Pre-Breakout, Breakout)
These toggle options allow traders to customize the dashboard to show only the metrics they find most valuable for their trading style.
Table and Text Customization
The dashboard's appearance can be customized:
Table background color via tableBgColor
Text color (White or Black) via textColorOption
The indicator uses smart formatting for volume and price values, automatically adding appropriate suffixes (K, M, B) for readability.
MACD Configuration for VTR
The Volume Trend calculation incorporates MACD with customizable parameters:
Fast Length: Controls the period for the fast EMA (default 3)
Slow Length: Controls the period for the slow EMA (default 9)
Signal Length: Controls the period for the signal line EMA (default 5)
MACD Weight: Controls how much influence MACD has on the volume trend score (default 0.3)
These settings allow traders to fine-tune how momentum is factored into the volume trend analysis.
Bollinger Bands and Keltner Channel Settings
The Bollinger Bands and Keltner Channels used for squeeze detection have preset (hidden) parameters:
BB Length: 20 periods
BB Multiplier: 2.0 standard deviations
Keltner Length: 20 periods
Keltner Multiplier: 1.5 ATR
These settings follow standard practice for squeeze detection while maintaining simplicity in the user interface.
Practical Trading Applications
Complete Trading Strategies
1. Squeeze Breakout Strategy
This strategy combines multiple components of the indicator:
Wait for a strong squeeze (SQZ showing ●)
Look for pre-breakout confirmation (PBK showing ● in green or red)
Enter when breakout is confirmed (BK showing ● in same direction)
Use VTR to confirm volume supports the move (VTR ≥ 65 for bullish or ≤ 35 for bearish)
Set profit targets based on ADR (Average Daily Range)
Exit when VTR begins to weaken or changes direction
2. Volume Divergence Strategy
This strategy focuses on the volume trend relative to price:
Identify when price makes a new high but VTR fails to confirm (divergence)
Look for VTR to show weakening trend (● changing to ◯ or ·)
Prepare for potential reversal when SQZ begins to form
Enter counter-trend position when PBK confirms reversal direction
Use external indicators (QQQ, BTC, Breadth) to confirm broader market support
3. Pre-Market Edge Strategy
This strategy leverages pre-market data:
Monitor AVOL for unusual pre-market activity (significantly above 100%)
Check pre-market price change direction (PCHG%)
Enter position at market open if VTR confirms direction
Use SQZ to determine if volatility is likely to expand
Exit based on RVOL declining or price reaching +/- ADR for the day
Market Context Integration
The indicator provides valuable context for trading decisions:
QQQ change shows tech market direction
BTC price shows crypto market correlation
UVIX change indicates volatility expectations
Breadth measurement shows market internals
This context helps traders avoid fighting the broader market and align trades with overall market direction.
Timeframe Optimization
The indicator is designed to work across different timeframes:
For day trading: Focus on AVOL, VTR, PBK/BK, and use shorter momentum periods
For swing trading: Focus on SQZ duration, VTR strength, and broader market indicators
For position trading: Focus on larger VTR trends and use EMA alignment weight
Advanced Analytical Components
Enhanced Volume Trend Score Calculation
The VTR score calculation is sophisticated, with the base score starting at 50 and adjusting for:
Price direction (up/down)
Volume relative to average (high/normal/low)
Volume acceleration/deceleration
Market conditions (bull/bear)
Additional factors are then applied, including:
MACD influence weighted by strength and direction
Volume change rate influence (speed)
Price/volume divergence effects
EMA alignment scores
Volatility adjustments
Breakout strength factors
Price action confirmations
The final score is clamped between 0-100, with values above 50 indicating bullish conditions and below 50 indicating bearish conditions.
Anti-False Signal Filters
The indicator employs multiple techniques to reduce false signals:
Requiring significant price range (minimum percentage movement)
Demanding strong volume confirmation (significantly above average)
Checking for consistent direction across multiple indicators
Requiring prior bar consistency (consecutive bars moving in same direction)
Counting consecutive signals to filter out noise
These filters help eliminate noise and focus on high-probability setups.
MACD Enhancement and Integration
The indicator enhances standard MACD analysis:
Calculating MACD relative strength compared to recent history
Normalizing MACD slope relative to volatility
Detecting MACD acceleration for stronger signals
Integrating MACD crossovers with other confirmation factors
EMA Analysis System
The indicator uses a comprehensive EMA analysis system:
Calculating multiple EMAs (5, 10, 21 periods)
Detecting golden cross (10 EMA crosses above 21 EMA)
Detecting death cross (10 EMA crosses below 21 EMA)
Assessing price position relative to EMAs
Measuring EMA separation percentage
Recent Enhancements and Evolution
Version 5.2 includes several improvements:
Enhanced AVOL to show buying/selling direction through color coding
Improved VTR with adaptive analysis based on market conditions
AVOL display now works in all timeframes through sophisticated estimation
Removed animal symbols and streamlined code with bright colors for better visibility
Improved anti-false signal filters throughout the system
Optimizing Indicator Settings
For Different Market Types
Range-Bound Markets:
Lower EMA Alignment Weight (0.2-0.4)
Higher Speed of Change Weight (0.8-1.0)
Focus on SQZ and PBK signals for breakout potential
Trending Markets:
Higher EMA Alignment Weight (0.7-1.0)
Moderate Speed of Change Weight (0.4-0.6)
Focus on VTR strength and BK confirmations
Volatile Markets:
Enable Volatility Filter
Enable Adaptive Volume Analysis
Lower Momentum Period (2-3)
Focus on strong volume confirmation (VTR ≥ 80 or ≤ 20)
For Different Asset Classes
Equities:
Standard settings work well
Pay attention to AVOL for gap potential
Monitor QQQ correlation
Futures:
Consider higher Volume/RVOL weight
Reduce MACD weight slightly
Pay close attention to SQZ duration
Crypto:
Higher volatility thresholds may be needed
Monitor BTC price for correlation
Focus on stronger confirmation signals
Integrated Visual System for Trading Decisions
The colored circle indicators create an intuitive visual system for quick market assessment:
Progression Sequence: SQZ (Squeeze) → PBK (Pre-Breakout) → BK (Breakout)
This sequence often occurs in order, with the squeeze leading to pre-breakout conditions, followed by an actual breakout.
VTR (Volume Trend): Provides context about the volume supporting these movements.
Color Coding: Green for bullish conditions, red for bearish conditions, and orange/gray for neutral or undefined conditions.
Liquidity Volume Panel Liquidity Volume Panel – Precision Tool for Scalpers & Intraday Traders
This panel is designed to help traders quickly identify volume-driven moves, liquidity events, and fair-value zones. It combines classic volume analysis with enhanced tools like RVOL and VWAP deviation bands, making it ideal for scalping, momentum trading, and intraday strategies.
🔍 Included Features:
✅ Relative Volume (RVOL) Indicator
Displays current volume in relation to its 20-period average – excellent for spotting low-activity zones or high-pressure breakouts.
✅ Dynamic Volume Coloring & Spike Detection
Color-coded volume logic highlights normal, strong, and extremely high volume, with visual markers for volume spikes (>200% of average).
✅ VWAP with ±1σ & ±2σ Bands
Industry-standard deviation bands show overbought/oversold conditions and dynamic support/resistance based on volume-weighted pricing.
✅ Background Highlighting
Subtle orange background alerts you when volume surges beyond extreme levels – making liquidity clusters instantly recognizable.
Usage:
Use this panel as a decision-making tool for entries, reversals, or breakouts – especially in fast-moving markets.
Best used on lower timeframes for precision scalping.
Candle RvolCandle Rvol is designed to be used on the 10minute chart, using it on other timeframes will result in unintended outcomes.
Candle Rvol has two dynamic features:
- creates and array for every 10m candle over the last 14 trading days, the current candle volume is then compared against the average of the corresponding candles from the past 14 days to give a dynamic relative volume expressed as a percentage (this means the high volume near the open and close does not skew the average volume data)
- for the current candle Rvol percentage, a check is made every 1m during the 10m candle and if the volume is on track to being over 100% the background will dynamically show a green colour.
EMA-BAND-PIVOT-VCPThis indicator is named "EMA-BAND-PIVOT-VCP" and integrates multiple elements such as moving averages, volume, volatility contraction patterns (VCP), pivot points, and a table to display key market metrics.
Key Features:
Moving Averages: ( 4 - EMA) default settings 20 , 50 ,144 , 200 . Can be changed in settings.
Pivot Highs and Lows:
The script detects pivot highs and pivot lows using customizable left and right lengths and plots labels to mark these points on the chart.
TIG BAND : This is setting of 2 sma - with the high and low of 90 day average which forms like a band . Its a very strong indicator of trend . Buying is suggestable above this .This has to be tested on your own to knowhow it works wonders ( price magnet). Works on all timeframes . (credit : Bhushan Sir from TIG ) .These are the best buy areas.
Volatility Contraction :
It identifies specific price contraction pattern .
vc marked - used 4 candles - first candle is the mother bar ., 2,3 and 4th candles complete range ( high to low ) is within the range of mother candle.
lc marked -here the closing is considered not the wicks. used 8 candles., the 7 candles closing is within the range of motherbar. Crosses are plotted on the last candle
Table Display:
A table is displayed on the chart with data such as EMA values, relative volume (RVol), Average Daily Range (ADR), and volume ratios. This gives a comprehensive overview of current market conditions.(RVol) compared to the 50-period volume SMA, percentage volume change, and other metrics is also displayed.
Crypto Aggregated Volume «NoaTrader»If you use volume in your crypto analysis, you may have encountered the situation which an exchange's policy change can affect your judgement falsely. For example, you can see the huge difference of volume on the given chart since binance transferred its fee discount from USDT to TUSD pair.
This script sums up volume of all major centralized exchanges ( according to coinmarketcap ) on the symbol you are visiting and has an option to exclude Binance's volume which can give you a more stable understanding for judgement when needed (and you can see the difference on the chart).
The colors also give a good vision about the relative volume in the area which can show the interest of market in trading.
The script only aggregates the same symbol on different exchanges and does not get the volume from other pairs.
Included CEXs are:
binance
bitstamp
coinbase
huobi
kraken
bitfinex
bybit
okx
kucoin
bithumb
RelativeValue█ OVERVIEW
This library is a Pine Script™ programmer's tool offering the ability to compute relative values, which represent comparisons of current data points, such as volume, price, or custom indicators, with their analogous historical data points from corresponding time offsets. This approach can provide insightful perspectives into the intricate dynamics of relative market behavior over time.
█ CONCEPTS
Relative values
In this library, a relative value is a metric that compares a current data point in a time interval to an average of data points with corresponding time offsets across historical periods. Its purpose is to assess the significance of a value by considering the historical context within past time intervals.
For instance, suppose we wanted to calculate relative volume on an hourly chart over five daily periods, and the last chart bar is two hours into the current trading day. In this case, we would compare the current volume to the average of volume in the second hour of trading across five days. We obtain the relative volume value by dividing the current volume by this average.
This form of analysis rests on the hypothesis that substantial discrepancies or aberrations in present market activity relative to historical time intervals might help indicate upcoming changes in market trends.
Cumulative and non-cumulative values
In the context of this library, a cumulative value refers to the cumulative sum of a series since the last occurrence of a specific condition (referred to as `anchor` in the function definitions). Given that relative values depend on time, we use time-based conditions such as the onset of a new hour, day, etc. On the other hand, a non-cumulative value is simply the series value at a specific time without accumulation.
Calculating relative values
Four main functions coordinate together to compute the relative values: `maintainArray()`, `calcAverageByTime()`, `calcCumulativeSeries()`, and `averageAtTime()`. These functions are underpinned by a `collectedData` user-defined type (UDT), which stores data collected since the last reset of the timeframe along with their corresponding timestamps. The relative values are calculated using the following procedure:
1. The `averageAtTime()` function invokes the process leveraging all four of the methods and acts as the main driver of the calculations. For each bar, this function adds the current bar's source and corresponding time value to a `collectedData` object.
2. Within the `averageAtTime()` function, the `maintainArray()` function is called at the start of each anchor period. It adds a new `collectedData` object to the array and ensures the array size does not exceed the predefined `maxSize` by removing the oldest element when necessary. This method plays an essential role in limiting memory usage and ensuring only relevant data over the desired number of periods is in the calculation window.
3. Next, the `calcAverageByTime()` function calculates the average value of elements within the `data` field for each `collectedData` object that corresponds to the same time offset from each anchor condition. This method accounts for cases where the current index of a `collectedData` object exceeds the last index of any past objects by using the last available values instead.
4. For cumulative calculations, the `averageAtTime()` function utilizes the `isCumulative` boolean parameter. If true, the `calcCumulativeSeries()` function will track the running total of the source data from the last bar where the anchor condition was met, providing a cumulative sum of the source values from one anchor point to the next.
To summarize, the `averageAtTime()` function continually stores values with their corresponding times in a `collectedData` object for each bar in the anchor period. When the anchor resets, this object is added to a larger array. The array's size is limited by the specified number of periods to be averaged. To correlate data across these periods, time indexing is employed, enabling the function to compare corresponding points across multiple periods.
█ USING THIS LIBRARY
The library simplifies the complex process of calculating relative values through its intuitive functions. Follow the steps below to use this library in your scripts.
Step 1: Import the library and declare inputs
Import the library and declare variables based on the user's input. These can include the timeframe for each period, the number of time intervals to include in the average, and whether the calculation uses cumulative values. For example:
//@version=5
import TradingView/RelativeValue/1 as TVrv
indicator("Relative Range Demo")
string resetTimeInput = input.timeframe("D")
int lengthInput = input.int(5, "No. of periods")
Step 2: Define the anchor condition
With these inputs declared, create a condition to define the start of a new period (anchor). For this, we use the change in the time value from the input timeframe:
bool anchor = timeframe.change(resetTimeInput)
Step 3: Calculate the average
At this point, one can calculate the average of a value's history at the time offset from the anchor over a number of periods using the `averageAtTime()` function. In this example, we use True Range (TR) as the `source` and set `isCumulative` to false:
float pastRange = TVrv.averageAtTime(ta.tr, lengthInput, anchor, false)
Step 4: Display the data
You can visualize the results by plotting the returned series. These lines display the non-cumulative TR alongside the average value over `lengthInput` periods for relative comparison:
plot(pastRange, "Past True Range Avg", color.new(chart.bg_color, 70), 1, plot.style_columns)
plot(ta.tr, "True Range", close >= open ? color.new(color.teal, 50) : color.new(color.red, 50), 1, plot.style_columns)
This example will display two overlapping series of columns. The green and red columns depict the current TR on each bar, and the light gray columns show the average over a defined number of periods, e.g., the default inputs on an hourly chart will show the average value at the hour over the past five days. This comparative analysis aids in determining whether the range of a bar aligns with its typical historical values or if it's an outlier.
█ NOTES
• The foundational concept of this library was derived from our initial Relative Volume at Time script. This library's logic significantly boosts its performance. Keep an eye out for a forthcoming updated version of the indicator. The demonstration code included in the library emulates a streamlined version of the indicator utilizing the library functions.
• Key efficiencies in the data management are realized through array.binary_search_leftmost() , which offers a performance improvement in comparison to its loop-dependent counterpart.
• This library's architecture utilizes user-defined types (UDTs) to create custom objects which are the equivalent of variables containing multiple parts, each able to hold independent values of different types . The recently added feature was announced in this blog post.
• To enhance readability, the code substitutes array functions with equivalent methods .
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcCumulativeSeries(source, anchor)
Calculates the cumulative sum of `source` since the last bar where `anchor` was `true`.
Parameters:
source (series float) : Source used for the calculation.
anchor (series bool) : The condition that triggers the reset of the calculation. The calculation is reset when `anchor` evaluates to `true`, and continues using the values accumulated since the previous reset when `anchor` is `false`.
Returns: (float) The cumulative sum of `source`.
averageAtTime(source, length, anchor, isCumulative)
Calculates the average of all `source` values that share the same time difference from the `anchor` as the current bar for the most recent `length` bars.
Parameters:
source (series float) : Source used for the calculation.
length (simple int) : The number of reset periods to consider for the average calculation of historical data.
anchor (series bool) : The condition that triggers the reset of the average calculation. The calculation is reset when `anchor` evaluates to `true`, and continues using the values accumulated since the previous reset when `anchor` is `false`.
isCumulative (simple bool) : If `true`, `source` values are accumulated until the next time `anchor` is `true`. Optional. The default is `true`.
Returns: (float) The average of the source series at the specified time difference.
MZ Adaptive Ichimoku Cloud (Volume, Volatility, Chikou Filter) This study is a functional enhancement to conventionally used Ichimoku Clouds . It uses particular effective adaptive parameters (Relative Volume Strength Index (MZ RVSI ), Volatility and Chikou Backward Trend Filter) to adapt dynamic lengths for Kijun-sen, Tenkan-sen, Senkou-span and Chikou .
This study uses complete available Ichimoku Clouds trading methodology to provide trade confirmations. Its still in experimental phase so will be updated accordingly.
ADAPTIVE LENGTH PARAMETERS
Relative Volume Strength Index (MZ RVSI )
For adaptive length, I tried using Volume and for this purpose I used my Relative Volume Strength Index " RVSI " indicator. RVSI is the best way to detect if Volume is going for a breakout or not and based on that indication length changes.
RVSI breaking above provided value would indicate Volume breakout and hence dynamic length would accordingly make Ichimoku Clouds more over-fitted to better act as support and resistance . Similar case would happen if Volume goes down and dynamic length becomes more under-fit.
Original RVSI Library and study can be found here:
Volatility
Average true range is used as volatility measurement and detection tool. Dual ATR condition would decide over-fitting or under-fitting of curve.
Chikou Backward Trend Filter
Chikou is basically close value of ticker offset to close and it is a good for indicating if close value has crossed potential Support/Resistance zone from past. Chikou is usually used with 26 period.
Chikou filter uses a lookback length calculated from provided lookback percentage and checks if trend was bullish or bearish within that lookback period.
Original Chikou Filter library and study can be found here:
ADAPTIVE ICHIMOKU CLOUD
Tenkan-Sen (Conversion Line)
Tenkan-sen is a moving average that is calculated by taking the average of the high and the low for the last nine periods conventionally but in this study its length is dynamically adapted based on Volume, Volatility and Chikou filter. Default adaption range is set to 9-30 which I found universally applicable to almost every market on all time-frames.
Kijun-Sen (Base Line)
The Kijun-Sen is usually considered a support/resistance line which also acts as an indicator of price movements in the future and takes a longer period into consideration, usually 26 periods compared to Tenkan-Sen’s nine periods is used conventionally. In this study, its length is set to vary in range of 20-60 based on adaptive parameters.
Senkou-Span (Leading Span)
Senkou-Span A : Senkou Span A is the average of the highs and lows of Tenkan-Sen and Kijun-Sen so it automatically adapts accroding to dynamic lengths of Tenkan and Kijun.
Senkou-Span B : Senkou Span B is usually calculated by averaging highs and lows of the past 52 periods and plotting it 26 points to the right but this study uses adaptive parameters to adapt its dynamic length in range of 50-120 which makes Kumo (Ichimoku Cloud) a better area for support and resistance. I don’t consider its necessary to adapt Kumo’s displacement to the right, so I used conventional 26 period as offset.
Chikou -Span (Lagging Span)
The Chikou Span, also known as the lagging span is formed by taking the price source and offsetting it back 26 periods to the left but I used adaptive length in range 26-50 which makes this tool a better option to check for Chikou -Price cross check in wide range.
TRADE SIGNALS & CONFIRMATIONS
Volume : RVSI used to detect volume breakout about given point. By default, On Balance Volume based RVSI is selected for all dynamic length adaption and also for trade confirmations.
Cross(Tenkan,Kijun) : Easiest way to detect trend as if Tenkan is above Kijun then market is uptrend and vice versa.
Volatility : High volatility is a good way to confirm if price is on the move or not.
Tenkan = Kijun : Because of a wide range of Tenkan and Kijun length; their value can become equal before reversal.
Chikou > Source : A very conventional way to detect price momentum as if Chikou is above price then market is in uptrend and vice versa.
Chikou Momentum : Another simpler way to represent Chikou > Source as if momentum of price source is uptrend then price will tend to follow.
Source > Kumo : Using the best tool of Ichimoku Clouds i.e. Kumo. If price crosses both Senkou-Span A & B then market has broken potential resistance leading to a good uptrend and vice versa.
Source > Tenkan : Better way to detect price trend in short term.
Chikou Backward Trend Filter : Different from Chikou >Source in a way that Chikou filter makes sure that price crosses highest/lowest within defined period.
CHARTING
Bars Coloring : Bars coloring is set as following :
src > tenkan-Sen and src > kijun-Sen : Strong uptrend detection and shown by green bars.
src < tenkan-Sen and src < kijun-Sen : Strong downtrend detection and shown by green bars.
src > tenkan-Sen and src < kijun-Sen : Better way to detect bottom reversals as if price comes above tenkan but remains below kijun; that’s early signs of recovery. Light red bars are used for this by default.
src < tenkan-Sen and src > kijun-Sen : Better way to detect top reversals as if price comes below tenkan but remains above kijun; that’s early signs of losing potential in uptrend. Dark Grey bars are used for this by default.
Kumo Coloring : Following steps are used to derive Kumo’s dynamic color:
Average of Senkou-span A and B is calculated.
RSI with 14 period of that average is calculated.
Gradient color based on calculated RSI values with 0-100 range is derived which is final Kumo color.
Chikou Span Coloring : Dynamic coloring from Chikou Filter is used as Indicator’s Chikou ’s color.
Signals Overlay : Red and Green small triangles are used as signals overlay.
Papercuts Dynamic EMA - Relative Parameter FunctionThe goal of this is to link two parameters of different known low and high values so one affects the other.
In this case, I want to link Relative Volume to the length of an EMA, so it responds faster in times of high volume.
As an animator I am used to linking values in this way with Maya using a set driven key, took some work to figure it out in pine.
Looking up this concept, it has a few names, Relative values, linear interpolation, or rescale values.
Thanks to pinecoders for writing the EMA funciton that can accept length variables!
Here's a quick look at the root function to link the two values.
f_relativeVal(_source, in_bot, in_top, out_bot, out_top) =>
// float _source: input signal
// float in_bot : minimum range of input signal.
// float in_top : maximum range of input signal.
// float out_bot : minimum range of output signal.
// float out_top : maximum range of output signal.
clampSrc = _source > in_top ? in_top : _source < in_bot ? in_bot : _source //claps source to create a controlled range
//relInput = (clampSrc - in_bot) / (in_top - in_bot) * 100
inDiffIncrement = (in_top - in_bot)
outDiffIncrement = (out_top - out_bot)
out_bot + (clampSrc - in_bot) * outDiffIncrement / inDiffIncrement // rescale input range to output range
Volume Prism RibbonNASDAQ:SPWR
The purpose of this script is to give insight into the volume action. The relative volume is calculated (based on 400 ticks) with the volume of down days (close-close <0) being given a negative value. This function is then summed over 100 ticks. WMA's are used to generate a rainbow ribbon who's color order is easily recognized buy all of us. Watch and Warning points are added using crossover points. I find it to be a good supplement to my favorite Buy/Sell indicator. In addition to the wrapping of the ribbon, pay attention to where the zero line is as well.